A computer network is a collection of interconnected devices that can exchange data and share resources according to one or more communication protocols. The communication protocols define the format and manner in which the devices communicate the data. Example protocols include the Transmission Control Protocol (TCP) and the Internet Protocol (IP) that facilitate data communication by dividing the data into small blocks called packets. These packets are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission. The protocols define the format and construction of the packet, including header and payload portions of the packets.
Periodically, it is necessary to transition from one communication protocol to another. This may occur, for example, when a current communication protocol used within a network is upgraded to a newer version. As one example, the Internet is currently based on a communication protocol known as Internet Protocol version 4 (IPv4). IPv4 offers a ubiquitous network service, based on datagram (connectionless) operation, and on globally significant IP addresses to aid routing. It is becoming clear that certain elements of IPv4 are insufficient to support the growth of the Internet. For example, IPv4 makes use of a 32-bit address space. Internet Protocol version 6 (IPv6), however, makes use of a much larger 128-bit address space. However, development, standardization, implementation, testing, debugging and deployment of a new communication protocol can take a very large amount of time and energy, and is not guaranteed to lead to success.
A variety of approaches may be used in an attempt to provide a smooth transition from one communication protocol to another. One example approach that has been proposed is known as “dual-stack lite,” as described in the Internet Engineering Task Force (IETF) draft “Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion” to A. Durand et al., Aug. 11, 2010, the entire content of which is herein incorporated by reference. According to this approach, a residential gateway located at a subscriber's premises acts as an ingress and egress for a tunnel that encapsulates IPv4 packets within IPv6 packets. These IPv4-over-IPv6 tunnels are commonly referred to as “softwires.” The residential gateway forwards the IPv6 packets towards a router within a service provider network that decapsulates the IPv4 packets from the IPv6 packets, applies a network address translation (NAT) rule to each IPv4 packet, and forwards the IPv4 packets to the Internet.
In general, each router supports tens of thousands of subscribers. Conventionally, the router maintains a logical interface for each softwire and applies services on a per-subscriber basis. Traditional tunneling mechanisms used to create and maintain the softwires result in significant overhead due to the burden of signaling requirements for creating the softwires and associated logical interfaces, and a lack of mechanisms for detecting when subscribers login or logout. Furthermore, at a minimum, the router applies IPv4 to IPv4 NAT services for each subscriber as, according to the dual-stack lite model, subscribers need not have a globally unique network address. Applying the network address translation services as well as any other layer three through layer seven services requires additional hardware resources. Therefore, conventional dual-stack lite deployments require powerful hardware resources that may be very costly.